package models

type TimeFields struct {
	CreatedAt int64 `bson:"createdAt" json:"createdAt,omitempty"` // 创建时间
	UpdatedAt int64 `bson:"updatedAt" json:"updatedAt,omitempty"` // 更新时间
	DeletedAt int64 `bson:"deletedAt" json:"-,omitempty"`         // 删除时间
}

// GCJ02 坐标系
type Location struct {
	Lng float64 `bson:"lng" json:"lng"` // 场地位置坐标经度
	Lat float64 `bson:"lat" json:"lat"` // 场地位置坐标纬度
}

//GeoJsonPoint
//  GeoJSON type: Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon, GeometryCollection
//  type这里为"Point"
type GeoJsonPoint struct {
	Type        string    `bson:"type" json:"type"`               // GeoJSON type: Point
	Coordinates []float64 `bson:"coordinates" json:"coordinates"` // [lng, lat]
}

func (p *GeoJsonPoint) SetVal(lng float64, lat float64) {
	p.Type = "Point"
	p.Coordinates = []float64{lng, lat}
}

type Address struct {
	Province     string `bson:"province" json:"province"`                             // 省级（省份、直辖市、自治区）
	City         string `bson:"city" json:"city"`                                     // 地级（城市）
	District     string `bson:"district" json:"district"`                             // 县级（区县）
	Street       string `bson:"street,omitempty" json:"street,omitempty"`             // 乡级（乡镇、街道）
	Village      string `bson:"village,omitempty" json:"village,omitempty"`           // 村级（村委会、居委会）
	StreetNumber string `bson:"streetNumber,omitempty" json:"streetNumber,omitempty"` // 门牌号
	PostCode     string `bson:"postCode,omitempty" json:"postCode,omitempty"`         // 邮编
	Address      string `bson:"address" json:"address"`                               // 地址
}

func init() {

}
